package ComoViajo;

import java.util.ArrayList;
import java.util.HashMap;

public class EstacionTren extends Estacion implements EstacionInterface{

	private static final int TIEMPO_POR_ESTACION=3;
	private static final float COSTO_MENOS_DE_6_ESTACIONES = (float) 0.85;
	private static final float COSTO_DE_6_a_8_ESTACIONES = (float) 1.10;
	private static final float COSTO_DE_9_O_MAS_ESTACIONES = (float) 1.40;
	
	public EstacionTren(String nombre, String linea) {
		super(nombre,linea);
	}

	public EstacionTren(String nombre, String linea,Direccion direccion) {
		super(nombre,linea,direccion);
	}

	public int getTiempoTransbordo(EstacionTren estacionTren) {
		return TIEMPO_COMBINACION_TREN_TREN;
	}

	public int getTiempoTransbordo(EstacionSubte estacionSubte) {
		return TIEMPO_COMBINACION_SUBTE_TREN;
	}
	

	public float getCosto(int estacionesVisitadas) {
		if(estacionesVisitadas<6){ 
			return (float) COSTO_MENOS_DE_6_ESTACIONES; 
		}else if(estacionesVisitadas<9){ 
			return (float) COSTO_DE_6_a_8_ESTACIONES;
		}
		return (float) COSTO_DE_9_O_MAS_ESTACIONES;
	}

	public float getCosto(EstacionInterface medioDeTransporteSiguiente, int estacionesVisitadas) {
		
		return this.getCosto(estacionesVisitadas);
	}

	public int getTiempoDesdeEstacion(EstacionInterface estacionAnterior) {
		int tiempo=TIEMPO_POR_ESTACION;
		
		if((estacionAnterior == null)||(this.estaEnLaMismaLineaQue(estacionAnterior))) {
			return tiempo;
		}
		
		tiempo+=((Estacion)estacionAnterior).getTiempoTransbordo(this);
		
		return tiempo;
	}

	public ArrayList<HashMap<String, EstacionInterface>> getEstacionesQueCombinanCon(EstacionInterface estacionDestino) {
		return super.getEstacionesQueCombinanCon(estacionDestino);
	}



}
